﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="INavigationService.cs" company="saramgsilva">
//   Copyright (c) 2012 saramgsilva. All rights reserved.
// </copyright>
// <summary>
//   Defines the INavigationService type.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace Netflix.PortableClassLibrary.Services
{
    /// <summary>
    /// The NavigationService interface.
    /// </summary>
    public interface INavigationService
    {
        /// <summary>
        /// Gets a value indicating whether can go back.
        /// </summary>
        bool CanGoBack { get; }

        /// <summary>
        /// The go back.
        /// </summary>
        void GoBack();

        /// <summary>
        /// The navigate.
        /// </summary>
        /// <param name="parameter">
        /// The parameter.
        /// </param>
        /// <typeparam name="TDestinationViewModel">
        /// The destination view model.
        /// </typeparam>
        void Navigate<TDestinationViewModel>(object parameter = null);
    }
}
